package controladores;

import java.util.Iterator;

import modelo.datos.ciudad;
import modelo.datos.usuario;
import modelo.hibernate.dao.DaoCiudad;

import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.WrongValueException;
import org.zkoss.zk.ui.event.MouseEvent;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Button;
import org.zkoss.zul.Intbox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Textbox;

public class controladorRegistrarCiudad extends SelectorComposer<Component> {
	
private static final long serialVersionUID = 1L;


	
	private DaoCiudad dao = new DaoCiudad();
	private ciudad Ciudad= new ciudad();

	@Wire
	private Textbox CodCiudad;
	@Wire
	private Textbox Nombre;
	@Wire
	private Button btnRegistrar;
	@Wire
	private Button btnModificar;
	@Wire
	private Button btnCancelar;
	@Wire
	private Button btnBuscar;
	
	
	 @Listen("onClick=#btnBuscar")
		public void onClick$btnBuscar(MouseEvent event){
		 
		 try {	
			 String nombre= Nombre.getValue();
			 int posi= this.buscarCiudad(nombre);
			 
			 System.out.println(nombre);

			 			if(posi!=-1) //Si encontro la ciudad
			
							CodCiudad.setValue(dao.obtenerTodos().get(posi).getCodciudad());
							Nombre.setValue(dao.obtenerTodos().get(posi).getNomciudad());
									
							System.out.println("cod"+dao.obtenerTodos().get(posi).getCodciudad());
							System.out.println("nom"+dao.obtenerTodos().get(posi).getNomciudad());
								
							} catch (Exception e) {
								// TODO Auto-generated catch block
								e.printStackTrace();	
							}

		 
	 }
	
	 @Listen("onClick=#btnRegistrar")
		public void onClick$btnRegistrar(MouseEvent event){

		
							Ciudad.setCodciudad(CodCiudad.getValue());
							Ciudad.setNomciudad(Nombre.getValue());
							
						try {	
								dao.agregarCiudad(Ciudad);
								
							
						} catch (Exception e) {
							// TODO Auto-generated catch block
							e.printStackTrace();	
						}
						LimpiarCampos();
			}
		
	 @Listen("onClick=#btnModificar")
	public void onClick$btnModificar(MouseEvent event){
		
		 
		 try {	
			 String nombre= Nombre.getValue();
			 int posi= this.buscarCiudad(nombre);
			 
			 	dao.obtenerTodos().get(posi).setNomciudad(Nombre.getValue());
			 	
			 	dao.actualizarCiudad(Ciudad);
							
							
						} catch (Exception e) {
							// TODO Auto-generated catch block
							e.printStackTrace();	
						}
						LimpiarCampos();
			}
	 
	 @Listen("onClick=#btnCancelar")
		public void onClick$btnCancelar(MouseEvent event){
		 
				Messagebox.show("Desea cancelar?", "btnCancelar", Messagebox.OK | Messagebox.CANCEL, Messagebox.QUESTION);

				Executions.sendRedirect("principal.zul");
		 
			}
		
	 
	   
	    
	    public void LimpiarCampos()
	    {
	    	CodCiudad.setText("");
	    	Nombre.setText("");
	    	
	    }
	    
	    public int buscarCiudad (String nombre)
		{	
		  try {
			 			  
			for (int i=0; i<dao.obtenerTodos().size(); i++){
				
		        System.out.println("si lo se");
		      
		        if (dao.obtenerTodos().get(i).getNomciudad().equals(Nombre.getValue()))
			  {	  
		        	  return i;
		        	
			  }
		        System.out.println(i);
			}
			 /* 
				
			  }*/
		
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  return -1; 
		}
}
